Steve McConnel 所著的CODE COMPLETE:軟體開發實務指南 中, 第 23 章提到一個科學化的除錯方法,步驟如下:
我就以這套步驟當作基本原則來說明怎麼幫 ZK 應用程式除錯。
這階段目標是找到能產生該錯誤的明確、固定、最少步驟。
如果你的步驟不明確、不固定、或步驟很多,這代表似乎每個元件都可能造成問題,那問題範圍就會牽涉太廣,難以找到根因。如果能夠除去一個步驟,仍然能夠重現該錯誤,那就代表該步驟與錯誤無關,可以移除。因此經由反覆測試來減少步驟,就能縮小問題範圍,可以讓你接下來比較容易找到根因。
很多人會忽略伺服器印出的 log 內容,但其實它常常明確的表示出問題的根因,如顯示 exception stack trace,我們就可以根據呼叫的 stack 去找出錯誤發生的程式來推測出錯誤根因。
主流的桌上瀏覽器按 F12 都可以開啟開發者工具,其中 Console 頁會顯示錯誤訊息,這通常也能幫助我們找到根因。 以下是 Chrome 中的開發者工具:
為了找到錯誤的根因,縮小問題的範圍將會非常有幫助,因為問題牽涉的範圍越大,潛在造成問題的因素就越多,必須耗費非常多時間一一檢視這範圍裡的每個因素來找出根因,因此縮小問題範圍可以增進除錯的效率。你可用以下作法縮小問題: